public class Aunt {
    //有一根27厘米的细木杆，在第3厘米、7厘米、11厘米、17厘米、23厘米上各有一只蚂蚁
    //木杆很细。不能同时通过一只蚂蚁。
    //开始时，蚂蚁的头朝左还是朝右是任意的，它们只会朝前走或掉头，但不会后退
    //当任意两只蚂蚁碰头时，两只蚂蚁会同时掉头朝相反方向走。
    //假设蚂蚁每秒钟可以走一厘米的距离。
    //编写程序，求所有蚂蚁都离开木杆的最小时间和最大时间。

    public static void main(String[] args){
        Aunt aunt = new Aunt();
        aunt.t1();

    }
    
    private void t1(){

        AuntClass a1 = new AuntClass();
        AuntClass a2 = new AuntClass();
        AuntClass a3 = new AuntClass();
        AuntClass a4 = new AuntClass();
        AuntClass a5 = new AuntClass();

        for(int i=1;i < 3;i++){
            for(int j=1;j < 3;j++){
                for(int k=1;k < 3;k++){
                    for(int m=1;m < 3;m++){
                        for(int n=1;n < 3;n++){
                            //蚂蚁的初始化
                            a1.direct = i;
                            a1.site = 3;
                            a1.alreadyGone = false;

                            a2.direct = j;
                            a2.site = 7;
                            a2.alreadyGone = false;

                            a3.direct = k;
                            a3.site = 11;
                            a3.alreadyGone = false;

                            a4.direct = m;
                            a4.site = 17;
                            a4.alreadyGone = false;

                            a5.direct = n;
                            a5.site = 21;
                            a5.alreadyGone = false;

                            for(int p = 1;p<1000;p++){
                                //让蚂蚁每次走一步
                                if(!a1.alreadyGone){
                                    a1.step();
                                }
                                if(!a2.alreadyGone){
                                    a2.step();
                                }
                                if(!a3.alreadyGone){
                                    a3.step();
                                }
                                if(!a4.alreadyGone){
                                    a4.step();
                                }
                                if(!a5.alreadyGone){
                                    a5.step();
                                }

                                //判断两只蚂蚁是否会碰头，是则都掉头
                                if(a1.site == a2.site && a1.direct ==2 && a2.direct==1){
                                    //表明蚂蚁一号和二号碰头
                                    a1.changedirection();
                                    a2.changedirection();
                                }

                                if(a2.site == a3.site && a2.direct ==2 && a3.direct==1){
                                    //表明蚂蚁一号和二号碰头
                                    a2.changedirection();
                                    a3.changedirection();
                                }

                                if(a3.site == a4.site && a3.direct ==2 && a4.direct==1){
                                    //表明蚂蚁一号和二号碰头
                                    a3.changedirection();
                                    a4.changedirection();
                                }

                                if(a4.site == a5.site && a4.direct ==2 && a5.direct==1){
                                    //表明蚂蚁一号和二号碰头
                                    a4.changedirection();
                                    a5.changedirection();
                                }
                                //判断是否已经全部离开
                                if(a1.alreadyGone && a2.alreadyGone && a3.alreadyGone && a4.alreadyGone && a5.alreadyGone){
                                    System.out.println("It's over,time is " + p);
                                    break;
                                }
                            }

                        }
                    }
                }
            }
        }
    }

}

class AuntClass{
    //表示蚂蚁所在的位置
    public int site = 0;
    //表示蚂蚁的朝向，1表示向左，2表示向右
    public int direct = 1;
    //表示蚂蚁是否离开的状态
    public boolean alreadyGone = false;
    
    public void step(){
        if(direct == 1){
            site = site - 1; 
        }else{
            site = site + 1;
        }

        if(site == 0 || site == 27){
            alreadyGone = true;
        }
    }

    public void changedirection(){
        if(direct == 1){
            direct = 2;
        }else{
            direct = 1;
        }
    }

}